home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / progutil / stdwin.zoo / test / test4.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-10-17  |  1.0 KB  |  69 lines

  1. /* Menu test - a text-edit window  */
  2.  
  3. #include "stdwin.h"
  4.  
  5. TEXTEDIT *tb;
  6.  
  7. void
  8. drawproc(win, l, t, r, b)
  9.     WINDOW *win;
  10. {
  11.     tedraw(tb);
  12. }
  13.  
  14. main(argc, argv)
  15.     int argc;
  16.     char **argv;
  17. {
  18.     WINDOW *win;
  19.     MENU *mp;
  20.     int width, height;
  21.     int stop= 0;
  22.     
  23.     winitnew(&argc, &argv);
  24.     if (argc >= 3) {
  25.         int h= atoi(argv[1]), v= atoi(argv[2]);
  26.         wsetdefwinpos(h, v);
  27.     }
  28.     
  29.     mp= wmenucreate(1, "File");
  30.     wmenuadditem(mp, "Quit", 'Q');
  31.     
  32.     win= wopen("Menu+textedit", drawproc);
  33.     wgetwinsize(win, &width, &height);
  34.     wsetdocsize(win, width, height);
  35.     
  36.     tb= tealloc(win, 0, 0, width);
  37.     tereplace(tb, "Hello, world\n--Guido van Rossum");
  38.     
  39.     do {
  40.         EVENT e;
  41.         wgetevent(&e);
  42.         if (teevent(tb, &e)) {
  43.             wsetdocsize(win, width, height= tegetbottom(tb));
  44.             continue;
  45.         }
  46.         switch (e.type) {
  47.         
  48.         case WE_COMMAND:
  49.             if (e.u.command == WC_CLOSE ||
  50.                 e.u.command == WC_CANCEL)
  51.                 stop= 1;
  52.             break;
  53.         
  54.         case WE_MENU:
  55.             if (e.u.m.id == 1 && e.u.m.item == 0)
  56.                 stop= 1;
  57.             break;
  58.         
  59.         }
  60.     } while (!stop);
  61.  
  62.      tefree(tb);
  63.     wclose(win);
  64.     wmenudelete(mp);
  65.     wdone();
  66.     
  67.     exit(0);
  68. }
  69.